skidinc.buy = {};
skidinc.buy.secondArgs = [];
skidinc.buy.thirdArgs = [];

skidinc.buy.categories = ['autoscript', 'script', 'server', 'battery'];
skidinc.buy.categoriesList = ['skidinc.autoscript.list', 'skidinc.script.listBuy', 'skidinc.server.list', 'skidinc.battery.list'];
skidinc.buy.categoriesDesc = [
    '购买自动脚本来自动运行脚本。',
    '购买新的，更强的脚本。',
    '升级你的服务器来使收益最大化。',
    '升级你的电池等级。'
];

skidinc.buy.help = function() {
    var str = '<y>购买帮助</y> 购买新的脚本, 自动脚本以及升级服务器：<br>' +
        '<b>-</b> “<b>buy</b>”命令需要<b>1个字符串类型</b>的<b>参数</b>。<br>' +
        '<b>-</b> 第一个参数是你想买的东西的<b>类别</b>。<br>' +
        '<b>-</b> 第二个参数是可选的，对于某些类别，它是你想购买的特定商品的<b>名称</b>。<br>' +
        '<b>-</b> 你可以添加一个参数来一次购买多个东西(<b>-q</b>后面跟一个数字或使用关键词<b>"max"</b>购买最大)。<br>' +
        '<b>-</b> 使用“<b>buy -l/-list</b>”命令来查看你可以购买的列表。';
    
    return skidinc.console.print(str);
};

skidinc.buy.list = function() {
    var str = '<y>购买列表</y>:<br>';
    
    for (var i = 0; i < skidinc.buy.categories.length; i++) {
        var category = skidinc.buy.categories[i],
            categoryList = skidinc.buy.categoriesList[i],
            categoryDesc = skidinc.buy.categoriesDesc[i];
        
        str += '<b>-</b> <z>' + category + '</z>: ' + categoryDesc + '<br><p class="text-bullet">' + eval(categoryList)() + '</p>';
    };
    
    return skidinc.console.print(str);
};

skidinc.buy.execute = function(args) {
    var exists = false,
        c;

    for (var category in skidinc.buy.categories) {
        var i = category,
            category = skidinc.buy.categories[i];
        
        if (args[0] == category) {
            exists = true;
            c = category;
        };
    };
    
    if (!exists)
        return skidinc.console.print('<x>错误</x> <b>' + args[0] + '</b> 不是一个有效的类别。');
    
    if (exists) {
        var item = (typeof args[1] == 'undefined') ? undefined : args[1],
            amount = 1,
            qIndex;
        
        if (args.indexOf('-q') > -1) {
            qIndex = args.indexOf('-q');
            
            if (isNaN(args[qIndex + 1]) && args[qIndex + 1] !== 'max')
                return skidinc.console.print('<x>错误</x> 在<b>-q</b>参数后加入一个数字或\"max\"。');
            if (!isNaN(args[qIndex + 1]))
                amount = parseInt(args[qIndex + 1]);
            if (args[qIndex + 1] == 'max')
                amount = 'max';
        };
        
        switch(c) {
            case 'autoscript':
                skidinc.autoscript.buy(item);
                break;
            
            case 'script':
                skidinc.script.buy(item);
                break;
            
            case 'server':
                skidinc.server.buy(item, amount);
                break;
            
            case 'battery':
                skidinc.battery.buy();
                break;
        };
    };
};

skidinc.buy.init = function() {
    skidinc.buy.categories.forEach(function(i) {
        skidinc.buy.secondArgs.push(i);
    });
    
    skidinc.script.scripts.forEach(function(i) {
        skidinc.buy.thirdArgs.push(i.id);
    });
    
    skidinc.server.servers.forEach(function(i) {
        skidinc.buy.thirdArgs.push(i);
    });
};